Repository navigation
i18n(service-settings): ship the built-in settings pages in zh-Hant, ar, fr and pt-BR - #30870
objectstack-fleet[bot] wants to merge 2 commits into
Conversation
…ar, fr and pt-BR Four new locales for the built-in Setup settings pages (page titles and descriptions, groups, field labels and help, option labels, banners, actions and source badges), registered in settingsBuiltinTranslations under the platform-table tags (zh-CN before zh-Hant). The settings coverage test holds each new locale to the same full coverage. Carried from the released handover commit 70f9870 (written by session_01Utp6Cai5CRdAs4u9gTipWU) without its localization-currency-lock and localization-locale-options hunks: #30630 (landed as #30734) owns those copy tables and already carries all eleven languages there. The zh-Hant file writes the provider brands in Traditional script (阿里通義, 矽基流動, 智譜). Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016WV4cya5ej5GQV86RPbRPK
📓 Docs Drift CheckThis PR changes 1 package(s): 4 hand-written doc(s) NAME something this change touched and may need an implementation-accuracy re-verification:
⛔ 1 release-owned page(s) also name something this change touched. These are read-only:
What this run could not see
Coarse fallback — 9 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): Which tree this was computed onThis run read A worktree cut from an older # while this PR is open — GitHub drops the merge commit once it closes
git fetch origin 5f9d9a8a22d8ca310c9231db20bbd50472a92365 && git checkout 5f9d9a8a22d8ca310c9231db20bbd50472a92365
# afterwards, rebuild it from the two parents, which stay fetchable
git fetch origin cf478ea3398e90e97e73f421fd7f0842a6bd04bd 9e0f2cd6bd29011ca692d21d4672673d3e032e82 && git checkout -B drift-repro cf478ea3398e90e97e73f421fd7f0842a6bd04bd && git merge --no-ff 9e0f2cd6bd29011ca692d21d4672673d3e032e82
node scripts/docs-audit/affected-docs.mjs --json cf478ea3398e90e97e73f421fd7f0842a6bd04bd
|
|
domain:server#1 · os-elon-musk · session_016WV4cytLmJxfAmgPVjUbbW 席位核对 · CI note · 2026-11-06T08:04Z · #30512Test Core (6/8) is red on |
Brings the branch up to main cf478ea so CI re-runs on the current base. Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016WV4cya5ej5GQV86RPbRPK
Requested by Elon · project thread
domain:server#1 · os-elon-musk · session_016WV4cya5ej5GQV86RPbRPK
Part of #30512 — package 6 of 11, first half (
@objectstack/service-settingsinzh-Hant,ar,fr,pt-BR). The card stays open: the second half (ru,de,ko) and platform-objects follow, and the last PR of the series makes the bundle check read the platform locale table.Clause-②: no
Metadata-protocol: none
维护者速读
@objectstack/objectql注册的数据生命周期页)的页标题和说明、分组、字段名和帮助、选项、提示条、操作按钮和来源标记,补上繁中、阿语、法语、巴葡 4 种。俄语、德语、韩语在下半包。localization-currency-lock/localization-locale-options文案表的部分按席位裁决整段去掉:Settings actions and refusals: seven module-local copy tables still carry four languages and resolve zh-TW to Simplified; the SMS test and two built-in answers are English only #30630(已作为 fix(settings): settings copy is written in all eleven platform languages, zh-TW reads Traditional, and sms/test answers in the caller's language (#30630) #30734 落地)拥有这两张表,且已带齐 11 种语言。测试改动只是覆盖测试把 4 种新语言加进列表(覆盖变宽,没有放宽断言)。回滚即撤 PR。src/translations/index.ts(按表标签注册,zh-CN 在 zh-Hant 前),再看settings-translation-coverage.test.ts,然后抽看任一新语言文件。pnpm --filter @objectstack/service-settings exec vitest run src/translations/settings-translation-coverage.test.ts全绿。What changes
zh-Hant,ar,fr,pt-BR), covering every built-in settings manifest: page titles and descriptions, group headings, field labels and help, option labels, banners, action buttons and the source badges. Country pickers name each country in the reader's language throughIntl.DisplayNames, as the existing locales do.src/translations/index.tsregisters them insettingsBuiltinTranslations(zh-CNstays ahead ofzh-Hant) and exports them beside the existing four.70f9870a(sessionsession_01Utp6Cai5CRdAs4u9gTipWU) without itslocalization-currency-lock.ts/localization-locale-options.tshunks (and their test hunk), per the seat's ruling of 2026-11-05: Settings actions and refusals: seven module-local copy tables still carry four languages and resolve zh-TW to Simplified; the SMS test and two built-in answers are English only #30630, landed as fix(settings): settings copy is written in all eleven platform languages, zh-TW reads Traditional, and sms/test answers in the caller's language (#30630) #30734, owns those copy tables and already carries all eleven languages there. This PR does not touch them.zh-Hantfile writes the Chinese provider brands in Traditional script (阿里通義,矽基流動,智譜); the handover had kept the Simplified spelling.Tests
settings-translation-coverage.test.tslists every shipped non-English locale; it now holds the four new ones to the same full coverage of every built-in manifest (its header comment says "every shipped non-English locale" instead of naming three). No assertion changed.Acceptance notes
enand againstzh-CN(which carries the inline-manifest keysen.tsdoes not): key set,{{holes}},{holes}, backtick spans, angle tokens, all four locales zero diffs. Arabic is RTL prose with identifiers, hosts and URLs left in Latin script.zh-Hantwas checked literal by literal (391) against OpenCC's Traditional (Taiwan) conversion: no Simplified-only character remains; its only remark is台in 主控台 / 平台, the Taiwan usage.SMTP,S3,OpenAI,Anthropic,Vercel AI Gateway,Turso / libSQL,RAGFlow, …); the terms the existingzh-CN/ja-JP/es-ESalso leave in English (Base URL,Embedder,Bucket,Backend,Endpoint); words spelled the same in the language (frPort,Contact,Finance,Sessions,Local,Global;pt-BRHost,Local,Global); and country names whose local spelling is the English one.check:i18n-stale-fillpasses with the baseline untouched.osfollowed by a lowercase word (check-cli-command-idspasses), and the whole "Lint · docs & code guards" lane was run locally before opening.Verification
Package suite, typecheck, build (verify lock)
i18n gates, the derived families and the docs & code guards lane
The branch is one commit on
maina2f523aa(after #30856 landed). Its diff has the same patch id (8ef6d611) asf8d192f9, where the derived families,pnpm lintand the docs & code guards lane ran on mainae82d057. The package suite, the whole-tree build and the three i18n / command-id checks were re-run on this head. (The first bundle check at this head, before the rebuild, read a stale@objectstack/specbuild and refused platform-objects'requiresFeaturefield group from #30810; after the rebuild it passes.)Dogfood: not run — content-only package PR, no
!in the title and no(narrowing)arm.Generated by Claude Code